<?php
class  LugarsController extends AppController {
	var $name='Lugars'; //PHP4 Compatibility
	var $components = array('RequestHandler');
	var $helpers = array('Javascript');
	function autoCompletar(){
		if($this->RequestHandler->isAjax() && !empty($this->data)){	
			if(!empty($this->data['tipo_de_lugar']) and !empty($this->data['nombre_del_lugar'])){
				if(!empty($this->data['parent_id'])){
					$parent=$this->Lugar->find('first',array('conditions'=>array('Lugar.lugar_id'=>$this->data['parent_id'])));
					if (!empty($parent)){
					$parent_lft=$parent['Lugar']['lft'];
					$parent_rght=$parent['Lugar']['rght'];
					$this->set('sugerencias',$this->Lugar->find('all',array(
															'conditions'=> array(
																					'Lugar.tipo_de_lugar' => $this->data['tipo_de_lugar'],
																					//Obtenga todos los hijos del parent_id, asì sean hijos de los hijos.
																					'Lugar.lft >' => $parent_lft,
																					'Lugar.rght <' => $parent_rght
																					
																				),
															'recursive'=> 0,
															'fields' => array('lugar_id','nombre_del_lugar')
															)
															
															)
					);
					}
				}
				else{
					$this->set('sugerencias',$this->Lugar->find('all',array(
															'conditions'=> array(
																					'Lugar.tipo_de_lugar' => $this->data['tipo_de_lugar'],
																					'Lugar.nombre_del_lugar LIKE' => '%'.$this->data['nombre_del_lugar'].'%'
																					
																				),
															'recursive'=> 0,
															'fields' => array('lugar_id','nombre_del_lugar')
															)
															
															)
						);
				}
			}
			
			$this->render('/elements/JSON','ajax');
		}
	}
	function buscarLista(){
		$this->autoRender=false; //No muestre la vista normal, espere un render.
		if($this->RequestHandler->isAjax() && !empty($this->data)){	
			if(!empty($this->data['tipo_de_lugar'])){
				if(!empty($this->data['parent_id'])){
					$this->set('sugerencias',$this->Lugar->find('all',array(
															'conditions'=> array(
																					'Lugar.parent_id' => $this->data['parent_id'],
																					'Lugar.tipo_de_lugar' => $this->data['tipo_de_lugar']
																				),
															'recursive'=> 0,
															'fields' => array('lugar_id','nombre_del_lugar')
															)
															
															)
						);
				}
			}
		}
		$this->render('listaAjax','ajax');
	}
	/*function index(){
		$data=array();
		$data['Lugar']['parent_id']=1304;
		$data['Lugar']['nombre_del_lugar']='7 de Agosto';
		//$data['Lugar']['codigo_del_lugar']=9;
		$data['Lugar']['tipo_de_lugar']=6;
		$this->Lugar->save($data);
	}*/

	/*
	 * Este mètodo se usa en la etapa de desarrollo para la correcta creaciòn del arbol
	 * que forma la tabla lugares. Se necesita de este mètodo pues el CAKEPHP trae un Behaviour para no tener
	 * que calcular los lft y rght de cada nodo manualmente. Así pues para lograr crear el árbol a
	 * partir de una tabla que sólo tiene id y parent_id usamos este script que para 
	 * funcionar utiliza un modelo temporal Llugar.php que no tiene relaciones, y solo se
	 * usa para obtener la informaciòn de la tabla de informaciòn que se tiene en un principio.
	 * Es decir que teniendo la tabla con sòlo parent_id e id creamos un modelo Llugar y con
	 * base en este creamos el àrbol de lugars con ayuda del tree behaviour de CakePHP.
	*/
	/*
	function arbol(){
		$this->loadModel('Llugar');
		$lugares = $this->Llugar->find('all',array('order'=>array('Llugar.lugar_id')));
		$data=array();
		foreach ($lugares as $lugar){
			$this->Lugar->create();
			if(!empty($lugar['Llugar']['parent_id'])){
				$data['Lugar']['parent_id']=$lugar['Llugar']['parent_id'];
				$data['Lugar']['nombre_del_lugar']=$lugar['Llugar']['nombre_del_lugar'];
				$data['Lugar']['tipo_de_lugar']=$lugar['Llugar']['tipo_de_lugar'];
				$data['Lugar']['codigo_del_lugar']=$lugar['Llugar']['codigo_del_lugar'];
				$this->Lugar->save($data);
			}
			else{
				$data['Lugar']['nombre_del_lugar']=$lugar['Llugar']['nombre_del_lugar'];
				$data['Lugar']['tipo_de_lugar']=$lugar['Llugar']['tipo_de_lugar'];
				$data['Lugar']['codigo_del_lugar']=$lugar['Llugar']['codigo_del_lugar'];
				$this->Lugar->save($data);
				
			}
			
		}
	}
	 */
	
	
}
?>